﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using COFE.Core;
using COFE.Core.Logger;

namespace COFE.Data.Logger
{
    //public class DBGenericEventLogger<EA> :
    //    DBEventLoggerBase<COFE.Data.Event, EA>
    //{

    //    #region Constructor

    //    public DBGenericEventLogger(
    //        Func<EA, COFE.Data.Event> createDBEventFunc,
    //        Func<COFE.Data.Event, EA> createEventArgsFunc
    //        )
    //    {
    //        _createDBEventFunc = createDBEventFunc;
    //        _createEventArgsFunc = createEventArgsFunc;
    //    }

    //    #endregion

    //    #region Methods

    //    public override void DispatchEvent(object sender, EA args)
    //    {
    //        string userId =
    //                    COFEShared.CurrentUserProfile == null ?
    //                    COFEShared.AdminUserProfile.UserName :
    //                    COFEShared.CurrentUserProfile.UserName;

    //        COFEDBShared.DBOperations.UpdateDatabase(
    //            (context) =>
    //            {
    //                var dbEvent = _createDBEventFunc(args);
    //                context.Events.AddObject(dbEvent);
    //                context.SaveChanges();
    //            });

    //    }


    //    protected override EventLog<EA> createEventArgs(
    //        COFE.Data.WorkEvent e)
    //    {
    //        return new EventLog<EA>(e.Time, e.Sender, e.UserId,
    //                                   _createEventArgsFunc(e));
    //    }

    //    #endregion
    //    #region Data

    //    Func<EA, COFE.Data.Event> _createDBEventFunc;
    //    Func<COFE.Data.Event, EA> _createEventArgsFunc;

    //    #endregion


    //}
}
